
//Function.prototype.apply 接受两个参数
//第一个是函数体内this对象的指向
//第二个参数是一个带下标的集合，是函数运行是要传入的参数列表，这个集合可以是数组，也可以是类数组

//Function.prototype.call //接受多个参数，
//第一个是函数体内this对象的指向
//第二个参数开始，是传入函数内的参数列表


var func = function () {

    console.log(arguments);//输出： { '0': 1, '1': 2, '2': 3, '3': 4, '4': 5 }

};

func.apply(null,[1,2,3,4,5]);

func.call(null,1,2,3);


var num = Math.max.apply(null,[1,2,3,4,5,6,7,8]);
console.log(num);


//call 和 apply 的用途

//1、改变this指向
var obj = {
    name:'obj',
    getName:function () {
        return this.name;
    }
};

var obj1 = {
    name:'obj1'
}
var obj2 = {
    name:'obj2'
}

console.log(obj.getName());
console.log(obj.getName.call(obj1));
console.log(obj.getName.apply(obj2));
